class Dep{
    /* 存放订阅者 */
    constructor(){
        this.list=[];
    }
    /* 添加订阅者 */ 
    addSub(sub){
        this.list.push(sub);
    }
    /* 通知订阅者更新 */
    notify(){
        this.list.forEach((sub)=>{
            sub.update();
        })
    }
}

class Watcher{
    constructor(callback){
        this.callback=callback;
    }
    update(){
        this.callback();
    }
}

/* 实例化watcher */ 
const watcher=new Watcher(function(){
    console.log('监视器1回调方法被执行了');
});
const watcher2=new Watcher(function(){
    console.log('监视器2回调方法被执行了');
});
/* 实例化dep */ 
const dep=new Dep();
dep.addSub(watcher);
dep.addSub(watcher2);
dep.notify();
